package com.satan.juc.demo24;

import java.util.concurrent.atomic.AtomicReferenceArray;

public class AtomicReferenceArrayExample {
    public static void main(String[] args) {
        // 创建一个AtomicReferenceArray
        AtomicReferenceArray<Integer> atomicArray = new AtomicReferenceArray<>(new Integer[5]);

        // 使用set方法设置元素
        atomicArray.set(0, 10);

        // 使用get方法获取元素
        int value = atomicArray.get(0);
        System.out.println("Value at index 0: " + value);

        // 使用compareAndSet方法尝试更新元素
        boolean isUpdated = atomicArray.compareAndSet(0, 10, 20);
        System.out.println("Is value updated? " + isUpdated);

        // 使用getAndSet方法更新元素并返回旧值
        int oldValue = atomicArray.getAndSet(0, 30);
        System.out.println("Old value was: " + oldValue);

        // 获取数组的长度
        int length = atomicArray.length();
        System.out.println("Array length: " + length);
    }
}
